package com.xyy.saas.payment.manage.cores.enums;

public enum ChannelEnum {

    /**
     * 直接支付 ： 微信
     */
    WX("wx", "微信"),
    /**
     * 直接支付 ： 支付宝
     */
    ALIPAY("alipay", "支付宝"),
    /**
     * 直接支付 ： 支付宝
     */
    DIRECT_ALIPAY("direct_alipay", "直连支付宝"),
    /**
     * 直接支付 ： 微信
     */
    DIRECT_WX("direct_wx", "直连微信"),
    /**
     * 聚合支付 ： 微信
     */
    AGGREGATE_WX("aggregate_wx", "聚合支付-微信"),
    /**
     * 聚合支付 ： 支付宝
     */
    AGGREGATE_ALI("aggregate_alipay", "聚合支付-支付宝"),
    /**
     * 聚合支付 ： 银联
     */
    AGGREGATE_UPACP("aggregate_upacp", "聚合支付-银联"),
    /**
     * 直接支付 微信
     */
    CHANNEL_DIRECT_NAME_WX("directwx", "直接支付-微信"),
    /**
     * @Description 
     * @Param 银联支付渠道
     * @return 
     * @Author User
     * @Date 2021/6/28 下午3:07
     **/
    UNIONPAY("unionpay", "银联");

    private String code;

    private String name;

    ChannelEnum(String code, String name){
            this.code = code;
            this.name = name;
    }

    public String getCode() {
            return code;
    }

    public String getName() {
        return name;
    }

    /**
     * warning: 如果code不存在, 方法会报错
     * @param code
     * @return
     */
    public static ChannelEnum getChannelEnum(String code) {
        for (ChannelEnum channelEnum : ChannelEnum.values()) {
            if (channelEnum.code.equals(code)) {
                return channelEnum;
            }
        }
        return null;
    }

    public static boolean contains(String code) {
        if (code == null || code.trim().length() == 0) {
            return false;
        }
        for (ChannelEnum channelEnum : ChannelEnum.values()) {
            if (channelEnum.code.equals(code.trim())) {
                return true;
            }
        }
        return false;
    }
}
